#ifndef _EDAASPIRCRIT_H_
#define _EDAASPIRCRIT_H_

#include "edaMove.h"
#include "edaSerialize.h"
#include "edaDefine.h"

class edaAspirCrit : public edaSerialize
{
  public:
    edaAspirCrit() {}
    ~edaAspirCrit() {}

    virtual edaAspirCrit* clone() const = 0;

    virtual void init() = 0;

    /**
     * Check for the tabu move could be accepted
     */
    virtual bool check(const edaMove *_move, double fitness) = 0;

    setClassID(_SYSCLASSID_ + _CLSID_EDAASPIRCRIT_);
};

#endif
